#ifndef SIMPLE_ENCODE_H
#define SIMPLE_ENCODE_H
typedef long (*EncodeGetPulse)(void);

typedef struct
{
	long pulse_counter;
	long prev_pulse_counter;
	float cpr;
	EncodeGetPulse getPulse;
}SimpleEncode_t;

void SimpleEncode_Init(SimpleEncode_t *handle,float _ppr);
void SimpleEncode_Hal(SimpleEncode_t *handle,EncodeGetPulse f);

float SimpleEncode_getAngle(SimpleEncode_t *handle);
float SimpleEncode_getSensorAngle(SimpleEncode_t *handle);
float SimpleEncode_getMechanicalAngle(SimpleEncode_t *handle);
double SimpleEncode_getPreciseAngle(SimpleEncode_t *handle);
int SimpleEncode_getFullRotations(SimpleEncode_t *handle);
#endif // PID_H
